package ManagerImage.Utils;

import java.io.File;
import java.io.FileFilter;

public class FileUtil {

    /**
     * 判断文件是否为图片文件
     * 1.返回图片文件
     * 2.判断该文件是否含有图片文件
     */
    public File[] getImageFiles(File dir) {
        // 创建⽂件过滤器，只保留4种图⽚⽂件
        FileFilter filter = new FileFilter() {
            @Override
            public boolean accept(File file) {
                boolean result = false;
                if (file.isFile()) {
                    String filename = file.getName().toLowerCase();
                    if (filename.endsWith(".bmp") || filename.endsWith(".jpg") ||
                            filename.endsWith(".jpeg")|| filename.endsWith(".gif") ||
                            filename.endsWith(".png")) {
                        result = true;
                    }
                }
                return result;
            }
        };
        return dir.listFiles(filter);
    }
    public boolean isImageFile(File file) {
        String[] imageExtensions = {".png", ".jpg", ".jpeg", ".gif", ".bmp"};
        String fileName = file.getName().toLowerCase();
        for (String extension : imageExtensions) {
            if (fileName.endsWith(extension)) {
                return true;
            }
        }
        return false;
    }
    /**
     * 格式化文件大小为可读格式
     * @param size
     * @return
     */
    public String formatSize(long size) {
        String[] units = {"B", "KB", "MB", "GB"};
        double formattedSize = size;
        int unitIndex = 0;

        while (formattedSize >= 1024 && unitIndex < units.length - 1) {
            formattedSize /= 1024;
            unitIndex++;
        }
        return String.format("%.2f %s", formattedSize, units[unitIndex]);
    }
}
